'''
部分填充，
变量部分填充，当需要两个字段；获取到阶段不一样，可以先到先填充
函数部分填充, 当模版中变量是动态的，比如：执行当前时间，就可以先格式化一个函数进去
'''
from datetime import datetime

from langchain_core.prompts import PromptTemplate

def _get_datetime():
    now = datetime.now()
    return now.strftime("%m/%d/%Y, %H:%M:%S")

def chat_promp_part_param():
    template = "{foo}{bar}"
    prompt = PromptTemplate(template=template, input_variables=["foo", "bar"])
    partial_prompt = prompt.partial(foo="foo")
    prompt_real = partial_prompt.format(bar="ssss")
    return prompt_real

def chat_promp_part_func():
    template = "{current_time}{bar}"
    prompt = PromptTemplate(template=template, input_variables=["current_time", "bar"])
    partial_prompt = prompt.partial(current_time=_get_datetime())
    partial_prompt.format(bar = 'bar')
    return partial_prompt